- 1400/02/12
- 0
- 321
به ستون های جدول اضافه نمیشود shadow porperty
به ستون های جدول اضافه نمیشود shadow porperty
protected override void OnModelCreating(ModelBuilder builder)
{
foreach (var entityType in builder.Model.GetEntityTypes())
{
if (entityType.ClrType.GetCustomAttributes(typeof(AuditableAttribute), true).Length > 0)
{
builder.Entity(entityType.Name).Property<DateTime?>("InsertTime");
builder.Entity(entityType.Name).Property<DateTime?>("UpdateTime");
builder.Entity(entityType.Name).Property<DateTime?>("DeleteTime");
builder.Entity(entityType.Name).Property<bool>("IsDeleted");
}
}
base.OnModelCreating(builder);
}
public override int SaveChanges()
{
var modifiedEntries = ChangeTracker.Entries().Where(a => a.State == EntityState.Modified ||
a.State == EntityState.Deleted ||
a.State == EntityState.Added);
foreach(var item in modifiedEntries)
{
var entityType = item.Context.Model.FindEntityType(item.Entity.GetType());
var inserted = entityType.FindProperty("InsertTime");
var updated = entityType.FindProperty("UpdateTime");
var removed = entityType.FindProperty("DeleteTime");
var IsRemoved = entityType.FindProperty("IsDeleted");
if(item.State==EntityState.Added && inserted!=null)
{
item.Property("InsertTime").CurrentValue = DateTime.Now;
}
if (item.State == EntityState.Modified && updated != null)
{
item.Property("UpdateTime").CurrentValue = DateTime.Now;
}
if (item.State==EntityState.Deleted && IsRemoved!=null && removed!=null)
{
item.Property("DeleteTime").CurrentValue = DateTime.Now;
item.Property("IsDeleted").CurrentValue = true;
}
}
return base.SaveChanges();
}
- 1400/02/12
بعد از اضافه کردن این دستورات باید Add-Migrations را هم اجرا کنید و این تغییرات را بر روی دیتابیس اعمال کنید
پاسخی برای این باگ ارسال کنید
لطفا کدها را درون قطعه کد ارسال نمایید
برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری